/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#include "addlog.h"

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

ofstream ofile;	
char dlldir[ 320 ];

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

char *GetDirectoryFile( char *filename )
{
	static char path[ 320 ];
	strcpy( path, dlldir );
	strcat( path, filename );
	return path;
}

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

void __cdecl add_log ( const char *fmt, ... )
{
	if( ofile != NULL )
	{
		if( !fmt )
			return;

		va_list va_alist;
		char logbuf[ 256 ] = { 0 };

		va_start ( va_alist, fmt );
		_vsnprintf ( logbuf+strlen( logbuf ), sizeof( logbuf ) - strlen( logbuf ), fmt, va_alist );
		va_end ( va_alist );

		ofile << logbuf << endl;
	}
}

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

void InitAddLog( HMODULE hModule )
{
	GetModuleFileNameA( hModule, dlldir, 512 );

	for( int i = ( int )strlen( dlldir ); i > 0; i-- ) 
	{ 
		if(dlldir [ i ] == '\\')
		{ 
			dlldir [ i + 1 ] = 0; 
			break;  
		}
	}

	ofile.open( GetDirectoryFile( LOGNAME ), ios::app );

	add_log( "*-*-*-*-*-*-*-*-*-*-*-*-*-*begin" );
}

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

void ExitAddLog( )
{
	add_log( "*-*-*-*-*-*-*-*-*-*-*-*-*-*end"   );
	ofile.close( );
}

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/